package cn.yxsm.yxmall.mapper;

import cn.yxsm.yxmall.pojo.dto.ProductSelectDTO;
import cn.yxsm.yxmall.pojo.dto.ProductUpdateDTO;
import cn.yxsm.yxmall.pojo.entity.Product;
import cn.yxsm.yxmall.pojo.vo.ProductAdminVO;
import cn.yxsm.yxmall.pojo.vo.ProductDetailVO;
import cn.yxsm.yxmall.pojo.vo.ProductUpdateVO;
import cn.yxsm.yxmall.pojo.vo.ProductVO;

import java.util.List;

public interface ProductMapper {

    List<ProductAdminVO> selectAdmin();

    void insert(Product p);

    String selectUrlById(int id);

    String selectIntroduceById(int id);

    void deleteById(int id);

    ProductUpdateVO selectByIdUpdate(int id);

    void update(ProductUpdateDTO product);

    void deleteSelectAllProducts(List<Integer> ids);

    List<ProductAdminVO> selectSomeProducts(ProductSelectDTO product);

    List<ProductAdminVO> selectSomeProductsTAB(ProductSelectDTO product);

    List<ProductAdminVO> selectSomeProductsTAC(ProductSelectDTO product);

    List<ProductAdminVO> selectSomeProductsBAC(ProductSelectDTO product);

    List<ProductAdminVO> selectSomeProductsC(ProductSelectDTO product);

    List<ProductAdminVO> selectSomeProductsB(ProductSelectDTO product);

    List<ProductAdminVO> selectSomeProductsT(ProductSelectDTO product);

    List<ProductVO> selectAllProduct();

    ProductDetailVO selectByIdDetail(int id);

    /**
     * 浏览1次,商品浏览量+1
     * @param id
     */
    void updateViewCount(int id);
}
